<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <!-- ============================-->
    <!--   ArrowToggleButton Style   -->
    <!-- A ToggleButton with an Arrow as its content -->
    <!-- ============================-->
  <Geometry x:Key="RightArrow">M 4 0 L 8 4 L 4 8</Geometry>
  <Geometry x:Key="DownArrow">M 0 0 L 4 4 L 8 0</Geometry>

    <Style x:Key="ArrowToggleButton"  TargetType="{x:Type ToggleButton}">
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="BorderBrush" Value="#404040" />
        <Setter Property="Background" Value="Transparent" />
        <Setter Property="Foreground" Value="{DynamicResource BlackBrush}" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ToggleButton}">
                    <Border Name="Border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
                        <Path Name="Arrow" HorizontalAlignment="Center" VerticalAlignment="Center" Data="{DynamicResource RightArrow}" Stroke="{TemplateBinding Foreground}" StrokeThickness="2"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="ToggleButton.IsMouseOver" Value="true">
                            <Setter TargetName="Border" Property="Background" Value="#808080"/>
                        </Trigger>
                        <Trigger Property="IsPressed" Value="true">
                            <Setter TargetName="Border" Property="Background" Value="#E0E0E0"/>
                        </Trigger>
                        <Trigger Property="IsChecked" Value="true">
                            <Setter TargetName="Arrow" Property="Data" Value="{DynamicResource DownArrow}"/>
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="False">
                            <Setter TargetName="Border" Property="Background" Value="#EEEEEE"/>
                            <Setter TargetName="Border" Property="BorderBrush" Value="#AAAAAA"/>
                            <Setter Property="Foreground" Value="#888888"/>
                            <Setter TargetName="Arrow" Property="Stroke" Value="#888888"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>


<Style x:Key="ArrowDownToggleButton" BasedOn="{StaticResource ArrowToggleButton}"  TargetType="{x:Type ToggleButton}">
  <Style.Resources>
    <Geometry x:Key="DownArrow">M 4 0 L 8 4 L 4 8</Geometry>
    <Geometry x:Key="RightArrow">M 0 0 L 4 4 L 8 0</Geometry>
  </Style.Resources>
</Style>
</ResourceDictionary>